package com.industrial.im.service;

import java.util.List;
import com.industrial.im.domain.DispatchTaskExecutionManage;
import com.industrial.im.domain.vo.ItemDetailVo;
import com.industrial.im.domain.vo.TaskVo;
import com.industrial.system.api.domain.SysUser;

/**
 * 任务执行管理Service接口
 * 
 * @author SangGuangCan
 * @date 2024-03-08
 */
public interface IDispatchTaskExecutionManageService 
{
    /**
     * 查询任务执行管理
     * 
     * @param baseId 任务执行管理主键
     * @return 任务执行管理
     */
    public DispatchTaskExecutionManage selectDispatchTaskExecutionManageByBaseId(String baseId);

    /**
     * 查询任务执行管理列表
     * 
     * @param dispatchTaskExecutionManage 任务执行管理
     * @return 任务执行管理集合
     */
    public List<DispatchTaskExecutionManage> selectDispatchTaskExecutionManageList(DispatchTaskExecutionManage dispatchTaskExecutionManage);

    /**
     * 新增任务执行管理
     * 
     * @param dispatchTaskExecutionManage 任务执行管理
     * @return 结果
     */
    public int insertDispatchTaskExecutionManage(DispatchTaskExecutionManage dispatchTaskExecutionManage);

    /**
     * 修改任务执行管理
     * 
     * @param dispatchTaskExecutionManage 任务执行管理
     * @return 结果
     */
    public int updateDispatchTaskExecutionManage(DispatchTaskExecutionManage dispatchTaskExecutionManage);

    /**
     * 批量删除任务执行管理
     * 
     * @param baseIds 需要删除的任务执行管理主键集合
     * @return 结果
     */
    public int deleteDispatchTaskExecutionManageByBaseIds(String[] baseIds);

    /**
     * 删除任务执行管理信息
     * 
     * @param baseId 任务执行管理主键
     * @return 结果
     */
    public int deleteDispatchTaskExecutionManageByBaseId(String baseId);

    /**
     * 查询列表
     * @return
     */
    List<TaskVo> queryList(TaskVo taskVo);


    /**
     * <p>
     *     查询签收的负责人
     * </p>
     * @param itemId 事项的ID
     * @return
     */
    List<SysUser> queryMainHeader(String itemId);

    /**
     * <p>
     *     保存事项负责人和事项参与人
     * </p>
     * @param params
     * @return
     */
    void saveMainHeaderAndCyrInfo(DispatchTaskExecutionManage params);

    /**
     * 查询事项页面详情
     * @param baseId
     * @return
     */
    ItemDetailVo queryItemDetailInfo(String baseId);

}
